<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/9/5
 * Time: 11:11
 */

namespace App\Http\commen;

//导入命名空间
use Cache;
use Log;
class Common
{

    /**
     * 发送请求
     * @param $url
     * @return mixed
     */
    public function getUrl($url){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
        // 为保证第三方服务器与微信服务器之间数据传输的安全性，所有微信接口采用https方式调用，必须使用下面2行代码打开ssl安全校验。
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_URL, $url);
        $res = curl_exec($curl);
        curl_close($curl);

        return json_decode($res, 0); // 这里是获取到的信息
    }

    /**
     * 数组 转 对象
     *
     * @param array $arr 数组
     * @return object
     */
    public static function array_to_object($arr) {
        if (gettype($arr) != 'array') {
            return;
        }
        foreach ($arr as $k => $v) {
            if (gettype($v) == 'array' || getType($v) == 'object') {
                $arr[$k] = (object)array_to_object($v);
            }
        }

        return (object)$arr;
    }


    /**
     * 对象 转 数组
     *
     * @param object $obj 对象
     * @return array
     */
   public static function object_to_array($obj) {
        $obj = (array)$obj;
        foreach ($obj as $k => $v) {
            if (gettype($v) == 'resource') {
                return;
            }
            if (gettype($v) == 'object' || gettype($v) == 'array') {
                $obj[$k] = (array)object_to_array($v);
            }
        }

        return $obj;
    }

    /**
     * 生成Token字段
     * @param $openid
     * @return string
     */
    public static function getStringToken($openid){
        //加密方式bcrypt + openid + 当前时间 + A~z + HK
       return bcrypt(bcrypt($openid).bcrypt(time()).bcrypt( str_random(8)).bcrypt('HK'));
    }



    /**
     * json 简单封装
     * @param int $state 返回的状态码
     * @param $msg 返回的消息
     * @param int $code
     * @return \Illuminate\Http\JsonResponse
     */
    public static function  toJSON(int $state,$msg,int $code){
       return Response() -> json(['state' => $state,'msg' => $msg],$code) ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
    }

    /**
     * 文件大小换算
     * @param $file_size 传入的文件大小
     * @return int
     */
    public static function ByteSize($file_size)
    {
       return $file_size / 1024;
    }

    /**
     * 通过token查询用户id
     * @param $token
     * @return 返回UUID
     */
    public static function getUuid($token){
       $tokens =  Cache::get($token);

       return $tokens[0]['uuid'];
    }

    /**
     * 日志工具
     * @param $error
     * @param $conten
     * @return
     */
    public static function getLog($error,$conten){
        return Log::channel('wxlog') ->error($error,array('msg' => $conten));
    }


    /**
     * 字符串 转换 数组
     * @param string $str
     * @return array
     */
    public static function strToArray(string $str){
        return explode(',',$str);
    }

    /**
     *  数组 转换 字符串
     * @param array $arr
     * @return string
     */
    public static function arrToString( array $arr){

     return  implode(',',$arr);

    }


}